package org.deng.java.object;

import org.deng.java.uitl.Person;

public class JavaNewObject implements Cloneable{
    private String person = "org.deng.java.uitl.Person";
    //Java创建对象的四种方式

    //1、使用new关键子创建，这是最常见和最直接的方式，通过调用类的构造方法来创建对象
    public Object CreateByNew(String name,int age){
        Person person = new Person(name,age);
        return person;
    }

    //2、通过反射机制进行创建，反射机制允许在运行时创建对象，并且可以访问类的私有成员，在框架和工具类中比较常见
    public Object CreateByClass() throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        Class clazz = Class.forName("org.deng.java.uitl.Person");
       //Class clazz = Class.forName("person.getClass()");

        Person person1 = (Person)clazz.newInstance();
        person1.setName("李四");
        person1.setAge(18);
        return person1;
    }

    //3、clone 拷贝创建，通过clone方法创建对象，需要实现 Cloneable 接口并重写 clone 方法。

}
